#ifndef SPHERE_H
#define SPHERE_H

//#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#include <object.h>
#include <surface.h>
#include <vector3.h>


typedef struct sphere
{
  object_t obj;
  vector3_t center;
  uint16_t radius;
} sphere_t;


#define SPHERE_X( s ) ( VECTOR3_X( s->center )  )
#define SPHERE_Y( s ) ( VECTOR3_Y( s->center )  )
#define SPHERE_Z( s ) ( VECTOR3_Z( s->center )  )

sphere_t *
sphere_new( void );

void
sphere_free( sphere_t *sphere );

char *
sphere_str( sphere_t *sphere );



#endif /* SPHERE_H */
